package com.cskaoyan.javase.array._1use._0declaration;

/**
 * 定义一个数组,是定义一种引用数据类型变量
 * 今天我们讲定义数组变量,都是定义局部变量数组,这是大前提.
 *
 * 既然是局部变量的定义,和之前讲的一样,局部变量的定义应该分成两步进行:
 *      1.声明
 *      2.初始化
 *
 * 类比于变量的声明，声明（declaration）数组也是类似的,需要明确的数组的数据类型以及数组的名字.
 *
 * 声明数组的两种语法格式：
 * 格式一
 * 数据类型[] 数组名;
 *
 * 格式二
 * 数据类型 数组名[];
 *
 *  注意：
 * 第一种格式具有更好的可读性，可以直观的看到这个数组是一个什么数据类型的数组。
 * 第二种格式，是Java沿袭自C语言的一种声明方式。（C语言语法当中只有格式二声明数组）
 *
 * 这是因为早期很多Java开发者都是C/C++开发转过来的，而且Java开发之初就是为了简化C++的。
 * 所以很多开发者在开发Java时，一时改不了使用习惯。
 * 我们在Java早期的源代码中，可以发现很多格式二的使用案例。
 * Java为了代码的兼容性考虑，不太可能会取消这一声明格式。
 * （但是像C#这种和Java同源的设计语言，已经取消了数组的声明格式二）
 * 但是，我们毕竟不是Java开发者，而几乎所以Java规范中都禁止使用格式二定义数组。
 * 规范的Java代码，应该永远采用格式一来声明数组！！
 *
 *
 * @since 10:06
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 格式一声明int数组
        int[] arr;
        // 格式二声明int数组
        // C-style array declaration of local variable 'arr2'.
        int arr2[];

        // 局部变量仅有声明没有初始化是不可用的,这个特点是局部变量的特点,和该变量是基本数据类型变量还是数组(引用数据类型变量)没有关系
        // System.out.println(arr);
    }
}
